/**
 * 路由守卫配置
 */

import router from './index'
import { checkRoutePermission } from '@/utils/auth'
import { ElMessage } from 'element-plus'

// 路由前置守卫
router.beforeEach((to, from, next) => {
  // 设置页面标题
  document.title = to.meta.title ? `${to.meta.title} - 传奇CMS` : '传奇CMS'
  
  try {
    // 检查路由权限
    const permissionResult = checkRoutePermission(to.meta)
    
    if (permissionResult.allowed) {
      // 有权限，允许访问
      next()
    } else {
      // 无权限，根据原因进行跳转
      const { reason, redirect, query } = permissionResult
      
      // 显示权限提示信息
      if (reason === '未登录') {
        ElMessage.warning('请先登录')
      } else if (reason === '权限不足') {
        ElMessage.error('您没有权限访问此页面')
      }
      
      // 跳转到相应页面
      if (redirect) {
        next({
          path: redirect,
          query: query || {}
        })
      } else {
        // 默认跳转到登录页
        next('/login')
      }
    }
  } catch (error) {
    console.error('路由守卫错误:', error)
    ElMessage.error('路由验证失败，请刷新页面重试')
    
    // 发生错误时，根据登录状态跳转到相应页面
    const token = localStorage.getItem('token')
    if (token) {
      next('/error')
    } else {
      next('/login')
    }
  }
})

// 路由后置守卫
router.afterEach((to, from) => {
  // 页面加载完成后的处理
  // 可以在这里添加页面统计、埋点等逻辑
})

export default router